/*
 *
 *    Copyright (c) 2022 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

// THIS FILE IS GENERATED BY ZAP
// This file is generated from clusters-Enums-Check.h.zapt

#pragma once

#include <clusters/ClosureDimension/Enums.h>

namespace chip
{
namespace app
{
	namespace Clusters
	{
		static auto __attribute__((unused)) EnsureKnownEnumValue(ClosureDimension::ClosureUnitEnum val)
		{
			using EnumType = ClosureDimension::ClosureUnitEnum;
			switch (val) {
			case EnumType::kMillimeter:
			case EnumType::kDegree:
				return val;
			default:
				return EnumType::kUnknownEnumValue;
			}
		}
		static auto __attribute__((unused)) EnsureKnownEnumValue(ClosureDimension::ModulationTypeEnum val)
		{
			using EnumType = ClosureDimension::ModulationTypeEnum;
			switch (val) {
			case EnumType::kSlatsOrientation:
			case EnumType::kSlatsOpenwork:
			case EnumType::kStripesAlignment:
			case EnumType::kOpacity:
			case EnumType::kVentilation:
				return val;
			default:
				return EnumType::kUnknownEnumValue;
			}
		}
		static auto __attribute__((unused)) EnsureKnownEnumValue(ClosureDimension::OverflowEnum val)
		{
			using EnumType = ClosureDimension::OverflowEnum;
			switch (val) {
			case EnumType::kNoOverflow:
			case EnumType::kInside:
			case EnumType::kOutside:
			case EnumType::kTopInside:
			case EnumType::kTopOutside:
			case EnumType::kBottomInside:
			case EnumType::kBottomOutside:
			case EnumType::kLeftInside:
			case EnumType::kLeftOutside:
			case EnumType::kRightInside:
			case EnumType::kRightOutside:
				return val;
			default:
				return EnumType::kUnknownEnumValue;
			}
		}
		static auto __attribute__((unused)) EnsureKnownEnumValue(ClosureDimension::RotationAxisEnum val)
		{
			using EnumType = ClosureDimension::RotationAxisEnum;
			switch (val) {
			case EnumType::kLeft:
			case EnumType::kCenteredVertical:
			case EnumType::kLeftAndRight:
			case EnumType::kRight:
			case EnumType::kTop:
			case EnumType::kCenteredHorizontal:
			case EnumType::kTopAndBottom:
			case EnumType::kBottom:
			case EnumType::kLeftBarrier:
			case EnumType::kLeftAndRightBarriers:
			case EnumType::kRightBarrier:
				return val;
			default:
				return EnumType::kUnknownEnumValue;
			}
		}
		static auto __attribute__((unused)) EnsureKnownEnumValue(ClosureDimension::StepDirectionEnum val)
		{
			using EnumType = ClosureDimension::StepDirectionEnum;
			switch (val) {
			case EnumType::kDecrease:
			case EnumType::kIncrease:
				return val;
			default:
				return EnumType::kUnknownEnumValue;
			}
		}
		static auto __attribute__((unused)) EnsureKnownEnumValue(ClosureDimension::TranslationDirectionEnum val)
		{
			using EnumType = ClosureDimension::TranslationDirectionEnum;
			switch (val) {
			case EnumType::kDownward:
			case EnumType::kUpward:
			case EnumType::kVerticalMask:
			case EnumType::kVerticalSymmetry:
			case EnumType::kLeftward:
			case EnumType::kRightward:
			case EnumType::kHorizontalMask:
			case EnumType::kHorizontalSymmetry:
			case EnumType::kForward:
			case EnumType::kBackward:
			case EnumType::kDepthMask:
			case EnumType::kDepthSymmetry:
				return val;
			default:
				return EnumType::kUnknownEnumValue;
			}
		}
	} // namespace Clusters
} // namespace app
} // namespace chip
